4110分HLS流媒体讲义第63页
HLS(HTTP Live Streaming)是苹果公司针对 iPhone、iPod、iTouch和iPad等移动设备而开发的基于HLS采用了流媒体解决方案。在HLS技术中Web服务器向客户端提供接近实时的音视频流。如果使用HLS的技术,就能在普通的HTTP的应用上直接提供点播和直播。在 Appstore中的视频相关的应用,基本都是应用的此种技术。该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(m3u8)。支持的视频流编码为H.264,音频流编码为 AAC。HLS由服务器组件、分发组件、客户端三个部分组成。服务器组件将采集的音视频编码为MPEG-2传输流发送给流分段器,流分段器将编码后的媒体分成一系列时间持续时间相等的小媒体文件,以.ts文件(MPEG-2传输流文件)保存。同时流分段器还会创建一个.m3u8的索引文件,记录所有分片后小媒体文件的位置。分段器还可以对每个媒体段加密,并创建秘钥文件,目前HLS支持16个字节秘钥的AES-128加密。分发组件存储分片后的媒体文件(.m3u8文件和.ts文件),将客户端请求的媒体资源分发给客户端。客户端根据URL获取媒体索引文件(.m3u8),通过索引文件的内容获取相应的媒体流片段以及解密秘钥,当获取到的媒体片段数量足够多时,客户端便开始渲染呈现给用户。
EXTM3U:表明该文件为m3u8文件,且每个m3u8文件必须将该标签放置第一行起始。
EXT-X-VERSION:字段是一个表示版本号标签,图3-1文件中的10,表示该m3u8文件的版本号是10。
#EXTINF:表示每个ts切片视频文件的时长(单位是S)。
#EXT-X-PLAYLIST-TYPE:VOD的意思是当前的视频流并不是一个直播流,而是点播流,换句话说就是该视频的全部的ts文件已经被生成好了。
#EXT-X-TARGETDURATION指定当前视频流中的切片文件的最大时长,也就是说这些ts切片的时长不能大于#EXT-X-TARGETDURATION的值。
#EXT-X-ENDLIST这个表示视频结束,有这个标志同时也说明当前的流是一个非直播流。
问题3.1:补全图3-2中的内容(补充服务或者协议)
① ② ③ ④中运用了什么协议 。
问题3.2:数据列表文件和切片分别是什么格式?上文中的每个切片的时间为多久,总时长为多久?上文的视频流是点播还是直播,并给出说明依据?
问题3.3:体育赛事的直播中常用到m3u8的技术,m3u8播放时必须至少加载3个.ts切片才能正常播放,在体育赛事的直播中m3u8存在的缺点是什么?用什么方法可以弥补这种缺点?
参考答案:问题3.1:①Server(服务器)、②Distribution(分发)、③Client(客户端)、④HTTP。
问题3.2:数据列表文件为 m3u8 文件,切片文件为 ts 文件;每个切片时长为 10s,总时长为 10×10=100s;根据 #EXT-X-PLAYLIST-TYPE:VOD 可知当前视频流不是直播流而是点播流,#EXT-X-ENDLIST 表示视频结束,出现该标志即说明当前为非直播流(点播流)。
问题3.3:体育赛事直播中 m3u8 的缺点是延时较高、难以用于互动直播场景;弥补方法是减少切片时间(如由推荐的 10s 降到 4s/6s),使播放器在更短时间内获得切片,从而对网络条件做出更好反应。
◆ 考点:HLS三组件:Server(服务器)、Distribution(分发)、Client(客户端),基于HTTP;m3u8为索引列表文件、ts为切片文件(讲义P63)。
◆ 判定:问题3.1①Server②Distribution③Client④HTTP;问题3.2每切片10s、总时长10×10=100s,#EXT-X-PLAYLIST-TYPE:VOD与#EXT-X-ENDLIST说明是点播非直播;问题3.3直播缺点是延时较高,靠减少切片时长弥补。
⚠ 易错提示:m3u8是索引列表、ts才是切片;VOD=点播、ENDLIST标志非直播;直播缺点是延时高,靠缩短切片弥补。
讲义原页对照 第63页 · HLS流媒体

点击图片可弹层放大查看讲义原页